package com.leo.foodmaster.admin.system.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.leo.foodmaster.admin.system.entity.Dept;
import com.baomidou.mybatisplus.extension.service.IService;
import com.leo.foodmaster.commons.entity.Result;
import com.leo.foodmaster.commons.entity.TreeSelect;

import java.util.List;

/**
 * <p>
 * 部门表 服务类
 * </p>
 *
 * @author Leo
 * @since 2021-07-15
 */
public interface IDeptService extends IService<Dept> {

    /**
     * 条件分页查询部门列表
     * @param page 分页参数
     * @param organId 公司Id
     * @param name 部门名称
     * @param status 部门状态
     * @param beginTime 开始时间
     * @param endTime 结束时间
     * @return IPage<Dept>
     */
    IPage<Dept> getOrganPageList(Page<Dept> page, Long organId, String name,
                                 String status, String beginTime, String endTime);

    /**
     * 查询所有部门树形列表
     * @param organId 公司Id
     * @return List<TreeSelect>
     */
    List<TreeSelect> treeSelect(Long organId);

    /**
     * 新增部门
     * @param dept 部门信息
     * @return Result<Object>
     */
    Result<Object> addOrgan(Dept dept);

    /**
     * 修改部门
     * @param dept 部门信息
     * @return Result<Object>
     */
    Result<Object> updateDept(Dept dept);

    /**
     * 删除部门
     * @param deptId 部门Id
     * @return Result<Object>
     */
    Result<Object> deleteDept(String deptId);
}
